//
//  HYMianViewController.swift
//  WeiBo
//
//  Created by crazyfish on 16/3/10.
//  Copyright © 2016年 crazyfish. All rights reserved.
//

import UIKit

class HYMianViewController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let tb = HYtabBar()
        
        //0.weak var weakSelf = self ,在闭包中使用weakSelf就可以解决循环应用一般不用
        
        //1.使用[weak self]解决循环引用,在闭包里面的self就是一个可选址,因为其指向对象销毁之后,闭包里面的self会置为nil
        
        //2.使用[unowned self]解决循环引用,但是其修饰的self在必败里面是一个真实存在的值,self指向的对象呗销毁,那么就会崩溃.在oc中的unsafe_unretained
        
        //这里的闭包存在循环引用(以后工作中直接加[weak self])
        
        tb.composeButtonClikclosure = {[weak self] in
            
            print("弹出控制器\(self)")
            
            
        }
        
        //只读属性不能直接设置值(想要设置的话使用KVC)
       // self.tabBar = tb
        //间接赋值
       self.setValue(tb, forKeyPath: "tabBar")
        
        //可以统一设置tabBar上面文字的颜色
        
//        self.tabBar.tintColor = UIColor.orangeColor()
        
       addChildViewController(HYHomeTableViewController(), imageNamed: "tabbar_home", title: "首页")
       addChildViewController(HYMessageTableViewController(), imageNamed: "tabbar_message_center", title: "消息")
       addChildViewController(HYDiscoveryTableViewController(), imageNamed: "tabbar_discover", title: "发现")
       addChildViewController(HYProfileTableViewController(), imageNamed: "tabbar_profile", title: "我")

        
        
        
    }

    /**
     添加自控制器
     
     - parameter childController: 自控制器
     - parameter imageName:       对应的图标名称
     - parameter title:           标题
     */
    private func addChildViewController(childController: UIViewController,imageNamed: String,title:String ) {
        
        //设置图片以及选中图片
        childController.tabBarItem.image = UIImage(named: imageNamed)?.imageWithRenderingMode(.AlwaysOriginal)
        
        //选中图片
        childController.tabBarItem.selectedImage = UIImage(named: "\(imageNamed)_selected")?.imageWithRenderingMode(.AlwaysOriginal)
        
        //设置标题
//        
//        childController.navigationItem.title = title
//        childController.tabBarItem.title = title
        //上面两句话可以写在一起
        
        childController.title = title
        
        //设置文字选中状态的颜色
        
        let attr = [NSForegroundColorAttributeName:UIColor.orangeColor()]
        
        childController.tabBarItem.setTitleTextAttributes(attr, forState: .Selected)
        
//        //设置文字大小
//        let att = [NSFontAttributeName:UIFont.systemFontOfSize(40)]
//        
//        childController.tabBarItem.setTitleTextAttributes(att, forState: .Normal)
        
        //添加
        addChildViewController(HYNavigationController.init(rootViewController: childController))
        
        
    }

    
    
}
